import { QueryFailedError } from "typeorm";

export function parseQueryFailedError(e: any) {
    if (e instanceof QueryFailedError && typeof e.driverError.constraint === "string") {
        const [tableName, fieldName, constraint] = (e.driverError.constraint as string)?.split("__");
        switch (constraint) {
            case "pk":
                return `Запись ${tableName.substring(0, tableName.length - 1)} с таким полем ${fieldName} уже существует`;
            case "uk":
                return `Запись ${tableName.substring(0, tableName.length - 1)} с таким полем ${fieldName} уже существует`;
            case "fk":
                return `Такого поля ${fieldName} не существует`;
        }
    } else {
        return "Неизвестная ошибка";
    }
}
